﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp6
{
    //    第一题：
    //一个考试管理系统，需要录入考生成绩，只能录入数字，否则会报类型转换异常。
    //请编写相关代码，
    //1、捕获FormatException异常，并打印输出“异常已处理；
    //2、捕获OverflowException异常，数值超出float范围的异常，并打印输出“异常已处理；
    //3、捕获一般异常Exception异常。
    //4、最终处理finally
    //录入成绩结束后，请输出，总学生数，总分数，平均分。
    class Program
    {
        static void Main(string[] args)
        {
            //输入151退出
            try
            {
                int sum = 0;
                int index = 0;
                bool FLAG = true;
               // int b=0;
                while (FLAG)
                {
                      //  b++;
                        Console.WriteLine($"请录入第{index+1}位考生的成绩");
                        int a = int.Parse(Console.ReadLine());
                        if (!(a == 151))
                        {
                            if (a >= 0 && a <= 150)
                            {
                                index++;
                                sum += a;
                            }
                            else
                            {
                                throw new OverflowException();//手动给一个异常
                            }
                        }
                        else
                        {
                            FLAG = false;
                            Console.WriteLine($"总人数{index}，总分:{sum},平均数：{ sum / index}");
                        }
                    }
                }
            catch (FormatException f)
            {
                Console.WriteLine("输入格式不正确：" + f.Message);
                Console.WriteLine("异常已处理");
            }
            catch (OverflowException o)
            {
                Console.WriteLine("输入的值超出float的最大值：" + o.Message);
                Console.WriteLine("异常已处理");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                Console.WriteLine();
            }

            Console.ReadKey();
        }
    }
}
